import {
	get,
	post
} from "../request/index.js"
// 使用方式
// async function fetchBannerData() {
//   try {
//     const response = await getBanner(); // 使用 await 等待结果
//     console.log('轮播图数据:', response);
//   } catch (error) {
//     console.error('请求失败:', error); // 捕获 reject 的值
//   }
// }
// 搜索商品接口
//  productKeyword 商品关键字
export const searchProduct = (name) => {
	return get('/search', {
		name
	})
}
//轮播图列表
export const getBanner = () => {
	return get('/banner')
}
//商品类型接口
export const getProductType = () => {
	return get('/type')
}
//根据商品类型获取商品接口
//  key: '商品类型键名',
//  value: '商品类型值'
export const getProductsByType = (key, value) => {
	return get('/typeProducts', {
		key,
		value
	})
}
//查看商品详情接口
// pid 商品pid
export const getProductDetail = (pid) => {
	return get('/productDetail', {
		pid
	})
}
//注册
// nickName 昵称
// password 密码
// phone 手机号
export const register = (nickName, password, phone) => {
	return post('/register', {
		nickName,
		password,
		phone
	})
}
//登录
// password 密码
// phone 手机号
// 返回数据含有token
// 将token保存在cookie、sessionStorage、localStorage中，
//然后如果访问有关于用户个人信息的页面时，
// 必须携带token到后台服务器验证，后台服务器验证通过，则放行，
// 否则，则拦截操作
export const login = (password, phone) => {
	return post('/login', {
		password,
		phone
	})
}
//收藏商品接口
// pid 商品pid
// tokenString token字符串
export const addCollect = (pid, tokenString) => {
	return post('/like', {
		pid,
		tokenString
	})
}
//取消(删除)收藏商品接口
// pid 商品pid
// tokenString token字符串
export const removeCollect = (pid, tokenString) => {
	return post('/notlike', {
		pid,
		tokenString
	})
}
//收藏状态
// pid 商品pid
// tokenString token字符串
export const getCollectStatus = (pid, tokenString) => {
	return get('/findlike', {
		pid,
		tokenString
	})
}
//收藏列表
// tokenString token字符串
export const getCollectList = (tokenString) => {
	return get('/findAllLike', {
		tokenString
	})
}
//添加商品到购物车
// pid 商品pid
// count 商品数量
// rule 商品规格 无糖/默认奶油
// tokenString token字符串
export const addShopcart = (pid, count, rule, tokenString) => {
	return post('/addShopcart', {
		pid,
		count,
		rule,
		tokenString
	})
}
//查询购物车商品总数量接口
export const getShopcartCount = (tokenString) => {
	return get('/shopcartCount', {
		tokenString
	})
}
// 查询用户所有购物车条目数接口
export const findAllShopcart = (tokenString) => {
	return get('/findAllShopcart', {
		tokenString
	})
}
//修改购物车商品数量接口
// sid 购物车唯一标识 
// count 商品数量
export const modifyShopcartCount = (tokenString, sid, count) => {
	return post('/modifyShopcartCount', {
		tokenString,
		sid,
		count
	})
}
// 删除 一个或者多个 购物车商品接口 (假删除)
// 该接口为：逻辑删除(假删除，数据仍在数据库中，但不能查询，以便后续客服手动恢复)
//  sids: sid购物车唯一标识集合字符串 sids 值为 JSON.stringify([sid1, sid2, sid3])
// tokenString: token字符串
export const removeShopcart = (tokenString, sids) => {
	return post('/removeShopcart', {
		tokenString,
		sids
	})
}
// 删除 一个或者多个 购物车商品接口 (真删除)
// 该接口为：物理删除(真删除，数据不在数据库中)
// sids: sid购物车唯一标识集合字符串 sids 值为 JSON.stringify([sid1, sid2, sid3])
// tokenString: token字符串
export const deleteShopcart = (tokenString, sids) => {
	return post('/deleteShopcart', {
		tokenString,
		sids
	})
}
// 获取购物车商品条目 (不是商品总数量)
//  tokenString: token字符串
export const getShopcartRows = (tokenString) => {
	return get('/shopcartRows', {
		tokenString
	})
}
//新增地址接口
// isDefault: 默认地址 isDefault 的值只能为 0 或者 1, ==> 0: 非默认地址, 1: 默认地址
// name 姓名
// tel 电话
// province 省份
// city 市
// country 区县
// addressDetail: 详细地址,
//   areaCode: 地区编号,
//  postalCode: 邮政编码,
export const addAddress = (tokenString, name, tel, province, city, country, addressDetail, areaCode, postalCode,
	isDefault) => {
	return post('/addAddress', {
		tokenString,
		name,
		tel,
		province,
		city,
		country,
		addressDetail,
		areaCode,
		postalCode,
		isDefault
	})
}
//删除地址接口
// aid: 地址唯一标识
export const deleteAddress = (tokenString, aid) => {
	return post('/deleteAddress', {
		tokenString,
		aid
	})
}
//查询地址接口
export const findAddress = (tokenString) => {
	return get('/findAddress', {
		tokenString
	})
}
// 编辑地址接口
export const editAddress = (tokenString, aid, name, tel, province, city, country, addressDetail, areaCode, postalCode,
	isDefault) => {
	return post('/editAddress', {
		tokenString,
		aid,
		name,
		tel,
		province,
		city,
		country,
		addressDetail,
		areaCode,
		postalCode,
		isDefault
	})
}
// 根据地址aid查询地址接口
export const findAddressByAid = (tokenString, aid) => {
	return get('/findAddressByAid', {
		tokenString,
		aid
	})
}
// 提交订单页面查询需要购买商品接口
//  sids: 购物车唯一标识集合  值为 JSON.stringify([sid1, sid2, sid3])
export const commitShopcart = (tokenString, sids) => {
	return get('/commitShopcart', {
		tokenString,
		sids
	})
}
//立即结算接口
//receiver 收货人
// address: 收货地址,
export const pay = (tokenString, sids, phone, address, receiver) => {
	return post('/pay', {
		tokenString,
		sids,
		phone,
		address,
		receiver
	})
}
//查询订单接口
//status: 订单状态
export const getOrderStatus = (tokenString, status) => {
	return get('/findOrder', {
		tokenString,
		status
	})
}
//确认收货接口
// oid: 订单oid
export const confirmReceive = (tokenString, oid) => {
	return post('/receive', {
		tokenString,
		oid
	})
}
//删除订单接口
// oid: 订单oid
export const removeOrder = (tokenString, oid) => {
	return post('/removeOrder', {
		tokenString,
		oid
	})
}
//我的接口
export const User = (tokenString) => {
	return get('/findMy', {
		tokenString
	})
}
//个人资料
export const accountInfo = (tokenString) => {
	return get('/findAccountInfo', {
		tokenString
	})
}
//修改昵称
// nickName 昵称
export const updateNickName = (tokenString, nickName) => {
	return post('/updateNickName', {
		tokenString,
		nickName
	})
}
//修改简介接口
export const updateDesc = (tokenString, desc) => {
	return post('/updateDesc', {
		tokenString,
		desc
	})
}
//修改密码接口
export const updatePassword = (tokenString, password, oldPassword) => {
	return post('/updatePassword', {
		tokenString,
		password,
		oldPassword
	})
}
//退出登录接口
export const logout = (tokenString) => {
	return post('/logout', {
		tokenString
	})
}
// 注销账号接口
export const destroyAccount = (tokenString) => {
	return post('/destroyAccount', {
		tokenString
	})
}
//上传头像接口
// imgType: 图片类型jpg,jpeg,png.....
// serverBase64Img: 图片base64码
export const updateAvatar = (tokenString, imgType, serverBase64Img) => {
	return post('/updateAvatar', {
		tokenString,
		imgType,
		serverBase64Img
	})
}
//上传用户背景接口
export const updateUserBg = (tokenString, imgType, serverBase64Img) => {
	return post('/updateUserBg', {
		tokenString,
		imgType,
		serverBase64Img
	})
}